package com.school.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.Date;

/**
 * 学生实体类
 */
@Data
public class Student implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 主键ID
     */
    private Long id;
    
    /**
     * 学号
     */
    @NotBlank(message = "学号不能为空")
    private String studentId;
    
    /**
     * 姓名
     */
    @NotBlank(message = "姓名不能为空")
    private String name;
    
    /**
     * 性别
     */
    @NotBlank(message = "性别不能为空")
    @Pattern(regexp = "^(男|女)$", message = "性别只能是男或女")
    private String gender;
    
    /**
     * 年龄
     */
    private Integer age;
    
    /**
     * 班级
     */
    @NotBlank(message = "班级不能为空")
    private String className;
    
    /**
     * 班主任
     */
    private String teacherName;
    
    /**
     * 专业
     */
    private String major;
    
    /**
     * 楼栋
     */
    private String building;
    
    /**
     * 宿舍号
     */
    private String dormitory;

    /**
     * 床位号
     */
    private String bedNumber;
    
    /**
     * 联系电话
     */
    private String phone;
    
    /**
     * 状态（已入住/待入住）
     */
    private String status;
    
    /**
     * 备注
     */
    private String remark;
    
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
}


